<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客详情页</title>
    <link rel="stylesheet" href="./css/common.css">
    <link rel="stylesheet" href="./css/blogdetail.css">
    <!-- 引入 editor.md 的依赖 -->
    <link rel="stylesheet" href="./editor.md/css/editormd.min.css">
    <script src="./js/jquery.min.js"></script>
    <script src="./editor.md/lib/marked.min.js"></script>
    <script src="./editor.md/lib/prettify.min.js"></script>
    <script src="./editor.md/editormd.min.js"></script>
</head>
<body>
<!-- 导航栏 -->
<!-- 为了能够在后续过程中，添加样式等操作，建议都引入一个类属性 -->
<div class="navigation">
    <img src="./image/2.jpg" alt="">
    <span>我的博客系统</span>
    <!-- 空白元素，用于站位置 -->
    <div class="spacer"></div>
    <a href="bloghome.html">主页</a>
    <a href="writingblog.html">写博客</a>
    <a href="logout">注销</a>
</div>
<!-- 这里的 .container 作为页面的版心 -->
<div class="container">
    <!-- 左侧用户信息区 -->
    <div class="left">
        <!-- 表示整个用户信息区域 -->
        <div class="card">
            <img src="./image/1.jpg" alt="">
            <!-- &nbsp;  空格符 -->
            <h3>  </h3>
            <a href="#">github 地址</a>
            <div class="counter">
                <span>文章</span>
                <span>分类</span>
            </div>
            <div class="counter">
                <span>2</span>
                <span>1</span>
            </div>
        </div>
    </div>
    <!-- 右侧内容区 -->
    <div class="right">
        <!-- 使用一个 div 来包裹整个博客的内容详情 -->
        <div class="blog-content">
            <!-- 博客标题 -->
            <h3>

            </h3>
            <!-- 发布时间 -->
            <div class="date">

            </div>
            <div id="content" style="opacity: 60%">

            </div>

        </div>
    </div>
</div>
<!-- 第一步还是先引入 jQuery 第三方库 -->
<!-- 因为使用 ajax 需要依赖于 jQuery -->
<script>
    // 使用函数来来进行前端代码的逻辑
    function getBlogDetail(){
        $.ajax({
            type: "get",
            url: 'blog'+ location.search,
            success: function(body){
                // 根据 body 中的内容来构造页面
                // 构造 博客标题
                let h3 = document.querySelector(".blog-content>h3");
                h3.innerHTML = body.title;
                // 构造 博客发布时间
                let dateDiv = document.querySelector(".date");
                dateDiv.innerHTML = body.postTime;
                // 构造博客正文

                // 如果直接把 content 设为innerHTML
                // 此时显示在界面上的内容是原始的 markdown字符串
                // let content = document.querySelector('#content');
                // content.innerHTML = body.content;

                //这里我们使用 editor.md 自带的方法，对内容进行渲染
                // 第一个参数对应 id=content 的 html 标签：渲染后得到的HTML片段，就会被放到这个标签下
                // 第二参数：需要渲染的数据对象
                editormd.markdownToHTML('content',{
                    markdown: body.content
                });
            }
        });
    }
    getBlogDetail();


    // 通过 GET /login 这个接口，来获取当前的登录状态
    function getUserInfo(){
        $.ajax({
            type: "get",
            url: "login",
            success: function(body){
                // 判定此处的 body 对象，是不是一个有效的 user 对象（userId 是否 非0 ）
                // 判断body.userId 是否存在，并且大于0
                if(body.userId && body.userId>0){
                    // 进入 if 语句中，说明用户：处于登录状态
                    console.log("当前用户登录成功！ 用户名：" + body.userName);

                    //在 getUserInfo 的回调函数中，来调用 getAuthorInfo 函数
                    getAuthorInfo(body);// 将获取到用户信息，作为参数发送给  getAuthorInfo 函数
                }else{
                    // 登录失败
                    // 通过 前端重定向方法 location.assign 方法 来进行页面的跳转
                    alert("当前您尚未登录！请在登录之后，再来访问博客列表！");
                    location.assign('bloglogin.html');

                }
            },
            error: function(){
                alert("当前您尚未登录！请在登录之后，再来访问博客列表！");
                location.assign('bloglogin.html');
            }
        });
    }
    getUserInfo();

    //通过这个方法，从服务器获取当前博客的作者信息，并显示在封面上
    function getAuthorInfo(user){//此时的参数user 就是刚才从服务器拿到的当前用户登录的信息
        $.ajax({
            type: "get",
            url:'authorInfo'+ location.search,
            // 此处的body，就是是一个  user 对象【这是文章作者的信息】
            success: function(body){
                if(body.username){
                    // 如果响应中的 username 存在，就把这个值设置到网页面上
                    changeUserName(body.username);

                    // 然后，我们就可以开始进行判断了
                    if(body.username == user.username){
                        // 如果相同，说明作者 和 登录用户 就是同一个人。
                        // 此时就可以显示出 删除按钮
                        // 获取导航栏对象
                        let navDIV = document.querySelector('.navigation');
                        // 创建一个新的 a 标签
                        let a =  document.createElement('a');
                        a.innerHTML= "删除";
                        //期望点击删除按钮，构造一个形如 blogDelete?blogId=6 这样的请求
                        a.href = "blogDelete"+ location.search;
                        navDIV.appendChild(a);// 江删除按钮接入导航栏中

                    }

                }else{
                    console.log("获取作者信息失败" + body.reason);
                }
            }

        });
    }
    // getAuthorInfo();

    function changeUserName(username){
        let h3 = document.querySelector('.card>h3');
        h3.innerHTML = username;
    }
</script>
</body>
</html>
